// pages/register/userInfo/userInfo.js
const app = getApp()
import requestUtil from "../../api/request"
import API from "../../api/http.api"

Page({
  data: {
    // 判断小程序的API，回调，参数，组件等是否在当前版本可用。
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
  },

  onLoad: function(options) {
    console.log("注册页")
  },

  onShow: function() {
    // 隐藏回到主页的按钮
    wx.hideHomeButton()
    this.check()
  },

  /**
   * 判断页面的显示内容
   */
  check: function() {
    if (app.globalData.registeredPhone == false) {
      this.setData({
        ifchooseUserType: false,
        getPhoneNum: true,
        content: "共享眼睛\n申请获取你的手机号用于注册账号"
      })
      return
    }
    if (app.globalData.userInfo.nickName == null) {
      this.setData({
        ifchooseUserType: false,
        getPhoneNum: false,
        content: "共享眼睛\n申请获取你的微信昵称，头像\n用于小程序内的个人基本信息"
      })
      return
    }
    if (app.globalData.userType == null) {
      this.setData({
        ifchooseUserType: true
      })
      return
    }
    if (app.globalData.userType == 0) {
      wx.redirectTo({
        url: "/pages/needHelp/index/index"
      })
      return
    }
    if (app.globalData.userType == 1) {
      wx.switchTab({
        url: "/pages/volunteer/index/index"
      })
      return
    }
  },

  /**
   * 获取手机号
   */
  getPhoneNumber: function(e) {
    console.log(e)
    var that = this
    if (e.detail.errMsg === "getPhoneNumber:ok") {
      requestUtil.post(API.UPDATE_USER_PHONE_NUMBER, {
        "encryptedData": e.detail.encryptedData,
        "iv": e.detail.iv
      }).then(res => {
        console.log(res)
        app.globalData.registeredPhone = true
        that.check()
      }).catch(err => {
        wx.showModal({
          title: '提示',
          content: '授权失败，请重试',
          showCancel: false,
          confirmText: '返回授权',
          success: function(res) {
            if (res.confirm) {
              console.log('用户点击了“返回授权”');
            }
          }
        });
      })
    } else {
      //用户按了拒绝按钮
      wx.showModal({
        title: '警告',
        content: '您点击了拒绝授权，将无法进入小程序，请授权之后再进入!!!',
        showCancel: false,
        confirmText: '返回授权',
        success: function(res) {
          // 用户没有授权成功，不需要改变 isHide 的值
          if (res.confirm) {
            console.log('用户点击了“返回授权”');
          }
        }
      });
    }
  },

  /**
   * 获取用户微信昵称，头像
   */
  getUserInfo: function(e) {
    var that = this
    console.log(e)
    if (e.detail.errMsg === "getUserInfo:ok") {
      wx.getUserInfo({
        success: res => {
          console.log("用户信息如下")
          console.log(res)

          app.globalData.userInfo = res.userInfo
          // 向服务器发送新的用户信息
          requestUtil.post(API.UPDATE_USER_INFO, {
            "encryptedData": res.encryptedData,
            "iv": res.iv
          }).then(res => {
            console.log(res)
            // wx.redirectTo({
            //   url: '/pages/register/phoneNumber/phoneNumber',
            // })
            that.check()
          }).catch(err => {
            wx.showModal({
              title: '提示',
              content: '授权失败，请重试',
              showCancel: false,
              confirmText: '返回授权',
              success: function(res) {
                if (res.confirm) {
                  console.log('用户点击了“返回授权”');
                }
              }
            });
          })
        }
      })
    } else {
      //用户按了拒绝按钮
      wx.showModal({
        title: '警告',
        content: '您点击了拒绝授权，将无法进入小程序，请授权之后再进入!!!',
        showCancel: false,
        confirmText: '返回授权',
        success: function(res) {
          if (res.confirm) {
            console.log('用户点击了“返回授权”');
          }
        }
      });
    }
  },

  /**
   * 选择用户类型
   */
  // chooseUserType: function(e) {
  //   const that = this
  //   let userType = e.currentTarget.id

  //   app.globalData.userType = Number(userType)
  //   app.linkSocket()

  //   requestUtil.post(API.UPDATE_USER_TYPE, {
  //     "userType": userType
  //   }).then(res => {
  //     console.log(res)
  //     that.check()
  //   }).catch(err => {
  //     wx.showModal({
  //       title: '提示',
  //       content: '选择失败，请点击下方的确定按钮重试',
  //       showCancel: false,
  //       confirmText: '确定',
  //       success: function(res) {
  //         if (res.confirm) {
  //           console.log("用户点击了确定")
  //         }
  //       }
  //     })
  //   })
  // },
  chooseUserType: function(e) {
    const that = this
    let userType = e.currentTarget.id

    let content
    if (Number(userType) == 0) {
      content = "您选择的用户类型为需要帮助的人"
    } else {
      content = "您选择的用户类型为志愿者"
    }

    wx.showModal({
      title: '提示',
      content: content,
      showCancel: true,
      confirmText: '确定',
      cancelText: '重选',
      success: function(res) {
        if (res.confirm) {
          console.log("用户点击了确定")

          requestUtil.post(API.UPDATE_USER_TYPE, {
            "userType": userType
          }).then(res => {
            console.log(res)
            app.globalData.userType = Number(userType)
            app.linkSocket()
            that.check()
          }).catch(err => {
            wx.showModal({
              title: '提示',
              content: '选择失败，请点击下方的确定按钮重试',
              showCancel: false,
              confirmText: '确定',
              success: function(res) {
                if (res.confirm) {
                  console.log("用户点击了确定")
                }
              }
            })
          })
        }
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})